﻿namespace Tibet.Entidades
{
    /// <summary>
    /// Clase que maneja las credenciales de acceso al sistema
    /// </summary>
    public class Credencial:Entidad
    {
        private string _nombreUsuario;
        private string _contrasenha;
        private int _status;

        /// <summary>
        /// Constructor vacío de la clase
        /// </summary>
        public Credencial()
        {

        }

        /// <summary>
        /// Constructor de la clase para validar una credencial
        /// </summary>
        /// <param name="nombreUsuario">
        /// Nombre de usuario de la credencial a validar
        /// </param>
        /// <param name="contrasenha">
        /// Contraseña de la credencial a validar
        /// </param>
        public Credencial(string nombreUsuario, string contrasenha)
        {
            _nombreUsuario = nombreUsuario;
            _contrasenha = contrasenha;
        }

        /// <summary>
        /// Constructor de la clase para crear una nueva credencial
        /// </summary>
        /// <param name="nombreUsuario">
        /// Nombre de usuario de la credencial a crear
        /// </param>
        /// <param name="contrasenha">
        /// Contraseña de la credencial a crear
        /// </param>
        /// <param name="status">Status de la credencial a crear</param>
        public Credencial(string nombreUsuario, string contrasenha,
            int status)
        {
            _nombreUsuario = nombreUsuario;
            _contrasenha = contrasenha;
            _status = status;
        }

        /// <summary>
        /// Get y set del atributo _nombreUsuario
        /// </summary>
        public string NombreUsuario
        {
            get { return _nombreUsuario; }
            set { _nombreUsuario = value; }
        }

        /// <summary>
        /// Get y set del atributo _contrasenha
        /// </summary>
        public string Contrasenha
        {
            get { return _contrasenha; }
            set { _contrasenha = value; }
        }

        /// <summary>
        /// Get y set del atributo _status
        /// </summary>
        public int Status
        {
            get { return _status; }
            set { _status = value; }
        }
        ///// <summary>
        ///// Método para pasar los parametros a la capa de datos para su posterior insercion del nuevo usuario
        ///// Variable: bool:retorno
        ///// </summary>
        //public bool InsertarUsuario(Credencial datos, DatosUsuario datos2)
        //{

        //    bool retorno = false;
        //    try
        //    {

        //        ///Consulta el alias de un usuario en BD



        //        AccesoCredencial accesoC = new AccesoCredencial();
        //        retorno = accesoC.InsertarUsuarioEnBd(datos2.Nombre, datos2.Apellido, datos2.Email, datos.NombreUsuario, datos._contrasenha);

        //        return retorno;

        //    }
        //    catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
        //    {

        //    }
        //    catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
        //    {

        //    }
        //    catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
        //    {

        //    }
        //    catch (Exception e)///Captura los demas errores
        //    {

        //    }

        //    return retorno;

        //}

       
        
        
        
        
        /////<summary>
        /////Descripción: Método para verificar si existe el alias en la BD
        /////Variable: Credencial: retornoLogin
        /////</summary>
        //public bool ExisteAlias(String alias)
        //{

        //    bool retornoLogin= false;
        //    try
        //    {

        //        ///Consulta el alias de un usuario en BD

               
                
        //        AccesoCredencial accesoC = new AccesoCredencial();
        //        retornoLogin = accesoC.ExisteAlias(alias);
                
        //        return retornoLogin;

        //    }
        //    catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
        //    {

        //    }
        //    catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
        //    {

        //    }
        //    catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
        //    {

        //    }
        //    catch (Exception e)///Captura los demas errores
        //    {

        //    }

        //    return retornoLogin;
            
        //}






        /////<summary>
        /////Descripción: Método usado para validar el login de un usuario al sistema
        /////Variable: Boolean: retornoLogin
        /////Devuelve: True si el login es correcto y false si el login es incorrecto
        /////</summary>
        //public Boolean ValidarLogin(Credencial login)
        //{

        //    Boolean retornoLogin;


        //    AccesoCredencial accesoC = new AccesoCredencial();
        //    retornoLogin = accesoC.BuscarLogin(login._nombreUsuario,login._contrasenha);

            
            
        //    try
        //    {

        //        ///Consulta el login de un usuario en BD

        //    }
        //    catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
        //    {

        //    }
        //    catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
        //    {

        //    }
        //    catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
        //    {

        //    }
        //    catch (Exception e)///Captura los demas errores
        //    {

        //    }
            
        //    return retornoLogin;

        //}





        /////<summary>
        /////Descripción: Método para verificar en BD si un usuario esta activo o inactivo en el sistema
        /////Variable: Boolean: retornoStatus
        /////Devuelve: True si el estado es activo y false si el estado es inactivo
        /////</summary>
        //public Boolean VerificarEstadoUsuario(Credencial login)
        //{

        //    Boolean retornoStatus = false;

        //    try
        //    {

        //        ///Verifica en BD el estado del usuario

        //    }
        //    catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
        //    {

        //    }
        //    catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
        //    {

        //    }
        //    catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
        //    {

        //    }
        //    catch (Exception e)///Captura los demas errores
        //    {

        //    }

        //    return retornoStatus;

        //}





        /////<summary>
        /////Descripción: Método para recuperar la clave
        /////Variable: Boolean: retornoRecordarClave
        /////Devuelve: True si recupero y en caso contrario false
        /////</summary>
        //public Boolean RecordarClave(String email)
        //{

        //    Boolean retornoRecordarClave = false;

        //    try
        //    {

        //        ///

        //    }
        //    catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
        //    {

        //    }
        //    catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
        //    {

        //    }
        //    catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
        //    {

        //    }
        //    catch (Exception e)///Captura los demas errores
        //    {

        //    }

        //    return retornoRecordarClave;

        //}


    }
}